5.7.1 error logging "send as this sender"
Exchange 2007
I can't offer much more information at this point.
I'm having an issue with an ASP.NET application that is trying to send out an email. The application is writing something like this in the Windows event log on the application server:
...Mailbox unavailable: The server response was 5.7.1 Client does not have permission to send as this sender at...
I'm trying to work through the problem, but what is really surprising to me (and the experienced Exchange administrator) is we can't seem to find this error on the Exchange server itself in any of the logs. There is no trace of this connection/communication
at all.
Is that normal?
I'm at the point of setting up a network monitor so we can actually confirm the network connection is occuring. Then I'll move on to concentrating on the ASP.NET application.
July 12th, 2011 8:21am
That is an SMTP error.
Exchange doesn't log everything, particularly if it happening at the SMTP transport layer.
Are you authenticating when sending the email? If not then that is probably the issue. It could be caused by a third party tool that is stopping the application from sending the email with the From field populated, could be an anti-spam/anti-spoofing technique.
Simon.Simon Butler, Exchange MVP
Blog |
Exchange Resources | In the UK?
Hire Me.
Free Windows Admin Tool Kit Click here and download it now
July 13th, 2011 3:01am
Hi,
Have you seen the answer I posted in your pervious thread?
http://social.technet.microsoft.com/Forums/en-US/exchangesvrdeploy/thread/5a5b15fd-7e99-4462-96a9-d5f77b68c7b5/#88efabee-d196-40c1-8df0-48b6ee071cc8
If you want the application to send a message through the exchange server, you need to allow the relay
for the application server or sending the message by authentication.
Allow Anonymous Relay on a Receive Connector
http://technet.microsoft.com/en-us/library/bb232021.aspx
For sending a message by basic authentication, please refer the following C # code:
SmptClinet mySMTP= new SmtpClient (servername, 25)
System.Net.NetworkCredential user1= new System.Net.NetworkCredential ("user@domain.com",
"Password");
mySMTP.Crendetial=user1
Note: If you use
Thomas@domain.com for authentication. The sender email address must be
Thomas@domain.com or this user’s alternative email addresses.
You also need to check if the basic authentication is enabled on your receive connector:
1. Open EMC, expand to server configuration->Hub transport. In receive connector tab, right click the default receive connector and choose properties.
2. In authentication tab, make sure that Basic authentication is checked and the “Offer Basic authentication only after starting TLS” is unchecked.
Gen Lin
Forum Support
Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support,
contact tnmff@microsoft.com.
July 13th, 2011 4:41am
That is an SMTP error.
Exchange doesn't log everything, particularly if it happening at the SMTP transport layer.
Are you authenticating when sending the email? If not then that is probably the issue. It could be caused by a third party tool that is stopping the application from sending the email with the From field populated, could be an anti-spam/anti-spoofing technique.
Simon.
Simon Butler, Exchange MVP
Blog |
Exchange Resources | In the UK?
Hire Me.
I'm able to send a simple email if I try using telnet, and from the error I'm seeing it must be getting to the Exchange server and not getting blocked?
Free Windows Admin Tool Kit Click here and download it now
July 13th, 2011 8:53pm
Hi,
Have you seen the answer I posted in your pervious thread?
http://social.technet.microsoft.com/Forums/en-US/exchangesvrdeploy/thread/5a5b15fd-7e99-4462-96a9-d5f77b68c7b5/#88efabee-d196-40c1-8df0-48b6ee071cc8
If you want the application to send a message through the exchange server, you need to allow the relay
for the application server or sending the message by authentication.
Allow Anonymous Relay on a Receive Connector
http://technet.microsoft.com/en-us/library/bb232021.aspx
For sending a message by basic authentication, please refer the following C # code:
SmptClinet mySMTP= new SmtpClient (servername, 25)
System.Net.NetworkCredential user1= new System.Net.NetworkCredential ("user@domain.com",
"Password");
mySMTP.Crendetial=user1
Note: If you use
Thomas@domain.com for authentication. The sender email address must be
Thomas@domain.com or this user’s alternative email addresses.
You also need to check if the basic authentication is enabled on your receive connector:
1. Open EMC, expand to server configuration->Hub transport. In receive connector tab, right click the default receive connector and choose properties.
2. In authentication tab, make sure that Basic authentication is checked and the “Offer Basic authentication only after starting TLS” is unchecked.
Gen Lin
Forum Support
Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support,
contact tnmff@microsoft.com.
Yes, I did see your message. From what I can tell, the connector is setup properly, but I fear it is the application that might be trying to do something odd. I'm going to look into the ASP.NET application now. I believe it must be doing something
since I have a receive connector configured to allow anon users on port 25, but it does work if I just do a plain telnet connection, but the ASP.NET app still fails.
July 13th, 2011 8:57pm
Try this, create a new receive connector for your ASP.Net app, I assume this is sitting on a server, so add that IP to this new receive connector. Create the connector as per link -
http://exchangepedia.com/2007/01/exchange-server-2007-how-to-allow-relaying.html
You need to make these change to the connector, for Authentication, Use Basic Authentication only, for permission groups use, Exchange users Only. Dont select anything else.
Go to ADSIedit>configuration>Services>Microosft Exchange>Exch Org anme>Exch Admin group>Servers>expand your server>protocols>SMTP receive connectros>select your connector>go to properties>security>click add>add
your domain user which you are using in your code Make sure these perissions exisit (allow) for this user>Read,Accept Any Sender,Accept Authoriate Domain Sender,Submit message to any recipient,Submit messages to Server.
Click OK to save changes
Sukh
Free Windows Admin Tool Kit Click here and download it now
July 13th, 2011 9:47pm
Hi,
If the telnet works, the problem should be caused by your ASP.Net application. Does the application send the message with authentication? Which authentication method is used by
the application? Please also check if the sender email address is correct.
July 14th, 2011 5:30am
Try this, create a new receive connector for your ASP.Net app, I assume this is sitting on a server, so add that IP to this new receive connector. Create the connector as per link -
http://exchangepedia.com/2007/01/exchange-server-2007-how-to-allow-relaying.html
You need to make these change to the connector, for Authentication, Use Basic Authentication only, for permission groups use, Exchange users Only. Dont select anything else.
Go to ADSIedit>configuration>Services>Microosft Exchange>Exch Org anme>Exch Admin group>Servers>expand your server>protocols>SMTP receive connectros>select your connector>go to properties>security>click add>add
your domain user which you are using in your code Make sure these perissions exisit (allow) for this user>Read,Accept Any Sender,Accept Authoriate Domain Sender,Submit message to any recipient,Submit messages to Server.
Click OK to save changes
Sukh
I'm sorry, but why would I have to through all of this. Is this a known issue? I'm not actually doing relaying in this case as the Exchange server is the main mail server for my "domain.com", and that's the to address that's trying to be sent to.
Free Windows Admin Tool Kit Click here and download it now
July 14th, 2011 7:38am
This isn't a known issue, The issue is with app. You need to speak to the developer who wrote this and understand what autentication it supplies. From your code it doesnt show anything. A guess would be BASIC.
You havent mentioned if you were relaying to your internal domain or external domain. Now that you have mentioned internal, then dont give the right to submit to any recipient.
This is why you may have to do this to get it working, without knowing the authentication the app is trying to send.
You have mentioned that telnet works fine, so you know Exch is working through basic smtp command, the issue is with your app.
I've seen some apps with this issue too, this is the reason why I suggested this.
When you did you telnet test, you made one up, sure, the IP is trusted, your app sitting on that IP is doing something else.
Also, set the DefaultDomain on the receiveconnector.
Sukh
July 14th, 2011 7:54am
Thank you everyone for your valuable comments. I'm going to try some more stuff out...
Free Windows Admin Tool Kit Click here and download it now
July 14th, 2011 8:08am
Hi,
If the telnet works, the problem should be caused by your ASP.Net application. Does the application send the message with authentication? Which authentication method is used by
the application? Please also check if the sender email address is correct.
I didn't write the app, so don't know exactly how it works. Should the sender email really matter? When I did my telnet test, I added a made up from address and it worked.
July 14th, 2011 2:18pm
Hi,
Is there any update on this problem?
Free Windows Admin Tool Kit Click here and download it now
August 14th, 2011 4:44am